对话元道:通证经济需要“互链网”,“互链网”需要细腰
本文大概
5000
字
读完共需
20
分钟
【作者按】在之前与元道的几次对话中,通证经济的逻辑和意义已经显现。但是目前能够支撑通证经济的技术基础设施还不存在。因此在这一次对话中,我们围绕通证的技术基础设施展开技术对话。
万链竞发时代的区块链治理
要靠“多利益关联方”模式
孟岩(以下简称孟):元道先生,我们的几篇对话发表之后,在圈子里引起的反响超出我的预期,尤其是我们对“通证”的解读,得到了很多业内人士的认可。不过也有不少人认为我们讨论的通证经济过于理想化,“还早着呢”,政策、人心、技术都远远达不到,搁在今天讲属于瞎操心,您怎么看?
孟:这是一个挺反讽的事,以“去中心化”为标签的区块链,却家家都以自己的 “链” 为宇宙中心,真的要把这条链上的通证兑换为那条链上的通证,反而要通过中心化的交易所来进行。链内的基础设施是去中心化的,但链与链之间是不协作的。这种局面怎么破?
孟:这个我很感兴趣,能否具体解释一下?
通证经济需要“互链网”
孟:“互链” 这个词很有意思,我们能说通证经济所需要的基础设施,不再是今天的互联网,而是未来的 “互链网” 吗?
孟:是的,UTXO 是比特币的一大技术特色,所有的交易都需要输入和输出,输入必须等于输出,每一个用户所拥有的比特币,不是他账户中的一个数字,而是他所有未花销的交易输出之和。从创世纪区块至今,环环相扣。
孟:“人人互链无国界,各国链网有主权”,这个提法很新颖。您能解释一下吗?
互链网的“细腰”和通证应用的“调色板”
孟:您说得很好,但我们还是回归现实,这些美好的设想,总还是需要技术来支撑的吧。您和我都是技术出身,如果只谈这些美好理想,不谈具体实现路径,那不就成空谈了。
下面我们来说说技术。
从技术上看,目前各链自成体系,跨链技术远未成熟,应该是目前的现状。互联网之所以有今天,其实有一个关键的协议,就是 IP 协议。IP 协议经常被人尊称为 “互联网的细腰”。因为在 IP 协议之上,有丰富多彩的传输层、应用层协议,而在其之下,也有丰富的链路层、物理层协议和实现。维独在互联层,IP 协议一夫当关,莫与争锋。因为有了 IP 的存在,上层应用多姿多彩,下层变化完全隔离。比如网络技术的发展,物理层可以是电缆、光纤,而数据链路层呢,ATM、PDH、SDH 已经逐渐式微,OTN 光网络逐渐成为主流,但是由于IP协议的存在,使得上层互联网应用可以完全忽略下面网络技术和物理设施演进变化,一路向前发展。
但是在今天的区块链世界里,并不存在这样一个细腰。现有的区块链从应用、智能合约、共同帐本、共识网络绑死,每个链形成了独立的垂直的封闭体系,当一个应用绑死在一个链上的时候,难以采用新技术,或者带着原有数据和资产迁移到新的链上,互链成为空谈。这个技术难题怎么破?
方块夫子(以下简称 “方”):两位好,很高兴参加这个对话。
孟:夫子好!元道先生刚才介绍说您在开发一个叫做 Pallet 的项目。我们这个访谈不搞项目宣传,只谈技术。能否介绍一下 Pallet 解决了什么技术问题?
方:Pallet是一套互链协议,价值交换需要互链,承诺的兑现需要约束,权益的转移需要一个标准化的协议。Pallet 就是干这件事。刚才你也提到,互联网能够有今天,有赖于 IP 协议这个细腰。Pallet 就是希望成为互链网上的 IP 协议。在 Pallet 之下,百链竞发,争奇斗艳,在 Pallet 之上,人人互链无边界,而 Pallet 作为一个协议,令多利益关联方达成共识,所有的链都可以参与其中。
孟:Pallet 本身是一条链吗?
方:Pallet 不是区块链,而是一套协议。我们当然会为这套协议开发一个实现,但是这套协议会开放出来,别人也可以开发他们的实现。只要遵循这套协议,就可以基于它写跨链的智能合约,以及 Dapp。对于用户来说,Pallet 之下的百链万链,都成为他发行自己通证、实现自己通证应用的组件。所以我们才称这个协议叫 Pallet,调色板。用户可以基于这个调色板来绘制自己的通证图画。
孟:我还是不太理解。跨链这件事情其实不新鲜,包括早期 Blockstream 提出来的侧链技术,在比特币和以太坊两大公链之间充当传令兵的 BTC-relay,到现在比较火的 RootStock、Polkadot,都是以跨链通讯为卖点的。但似乎都距离我们刚才所憧憬的互链网 IP 细腰有差距。Pallet 会有什么不同?
方:我们看 IP 协议解决了什么问题?首先是它解决了不同网络之间相互通讯的问题,其次,是它对其上的协议提供了一个统一的抽象。
你提到的这几种跨链技术,在我看来都是解决方案的层面,而不是协议层面。解决方案,就是我有一个问题,我想个可行的办法去解决这个问题,然后开庆功会。协议的思维方式不同,协议是要为着一个目标,在多利益关联方之间,制定一套游戏规则,只要遵守这套游戏规则,大家就可以互通共赢。
我不妨点评一下侧链技术,其实本质上就是主侧链之间双向锚定,相互信任。主链要向侧链转移资产时,通知侧链自己已经将一部分主链资产锁定,而侧链可以去检查主链资产的锁定状态,然后在自己的链上发行等值的侧链资产。这个过程宏观来看就是完成了资产的跨链转移。所以你看,这是一套区块链层面的技术,需要主侧链彼此了解,相互配合。
有什么问题呢?
第一,作为链间通讯解决方案,它规模性不行。两条链的时候很简单,一主一侧就可以了,如果是几十条链几百条链,怎么办?那只有围着一条中心主链来转。那这相当于什么呢?相当于每一个中心主链跟其侧链之间又打造了一个大一点的小宇宙,但是跟外界还是隔绝的。
第二,它不能够对上层应用提供强有力的抽象。你在这套体系里做出来的智能合约和 Dapp,还是局限在具体链上的。你的智能合约能运行在不同的链上,甚至同时运行在多条链上吗?恐怕是不行的。
这跟我们刚才所说的互链网的愿景,恐怕想去甚远吧。
根本问题在哪里?我认为,链间互链的问题,根本就不应该是在链这个层面解决,它必须高于链这个层次,要把下层的链当操作系统 API 来调度。
孟:那您的 Pallet 怎么设计的?
方:Pallet 就是按照这个思路来设计的。Pallet 的实现本身不是链,而是一套基于密码学、分布式的服务。
Pallet 协议借鉴了英美法系陪审员共识制度。一个应用层来的智能合约,送到 Pallet 层的时候,会有一个律师节点负责执行。然而它不能独断乾纲,需要陪审团节点为它背书。所以它先执行一遍智能合约,然后把代码和输出交给陪审团,每个陪审团节点各自独立执行一遍,确认输出正确,然后签名支持。律师节点得到足够的陪审员签名支持之后,就可以去找相应的下层公链来执行智能合约所要求的动作。这样一来,Pallet 相当于作为一个“百链之上”的公共智能合约执行层,就不但消除了各链智能合约的差异性,而且可以让本来没有智能合约的链,比如比特币,也可以在智能合约的支配下行动。比如说,使用Pallet可以在比特币链或其它没有智能合约的链上像ERC20一样快速定义和发行token。不但如此,这套机制可以让一个智能合约同时驱动多个下层链。所以我们称之为协议。
孟:我对于这里的共识达成算法有疑问。您这个算法的关键,是多数陪审员独立验证智能合约的执行状态,并且签名背书,让律师节点获得足够多的支持去调用下层链功能。但如果律师节点是恶意的,而他又刻意挑选一批恶意的陪审员节点,那么他们就可以曲解用户的智能合约了。您怎样确保多数陪审员节点是正直的呢?
方:很好的问题。这确实是这套协议设计中的一个要点。事实上,但是每一个智能合约执行时,会随机临时抽选一部分陪审员节点组成临时陪审团。因为是随机选择,所以可以在较少的节点基础上实现充分随机性。同时 Pallet 协议还采用押金惩罚机制保证陪审员不作恶,一起防范 Sybil 攻击,保证充分去中心化。
孟:那么我们的智能合约怎么开发?怎么部署?
方:Pallet 智能合约可以使用各种主流语言开发,C/C++、Python、JavaScript、Solidity,都可以,开发之后用对应的编译器便以为 LLVM 的 bitcode,然后若有必要,再进一步翻译,跑在相应链的智能合约虚拟机上。
Pallet可以挂在多个链上,避免网络拥塞,用户选择性大,使得各种DAPP应用可以部署在不同的链上,可以形成良性竞争,更多用户可以参 与,开发者在开发应用时可以根据业务需求更灵活的选择已有的链,或者方便的从已有经部署的链上迁移到更好更新的链上,使得已有的应 用生态可以突破原来部署的链自身架构局限、性能局限或者功能局限。
孟:非常有意思。这个项目背后的开发者是什么人?
方:Pallet项目是国际化项目,从硅谷发起,发展到东京、香港、奥克兰、台北、北京都有贡献者和参与者,大量国际性大学参与。元道先生自始至终参与其中。
孟:好的,我会更进一步思考。谢谢两位。
更多区块链技术、应用新闻,敬请关注